import fs from 'then-fs'

async function getData() {
    const str = await fs.readFile('./data.json', 'utf8')
    return JSON.parse(str)
}
// getData().then(res => { console.log(res) })  //测试


// 添加
// addData({
//     "author": "华龙",
//     "bookname": "法外狂徒",
//     "publisher": "华龙人民出版社"
// }).then(value=>console.log(value))
async function addData(obj) {
    try {
        //获取数组
        const arr = await getData()
        //添加id
        obj.id = arr[arr.length - 1].id + 1
        //写入数组
        arr.push(obj)
        console.log(arr);
        //放入数据
        fs.writeFile('./data.json', JSON.stringify(arr))
        return '添加成功'
    } catch (error) {
        return '添加失败'
    }
}


//删除
delData(6)
async function delData(id) {
    try {
        //获取数组
        const arr = await getData()
        //根据id删除数据,过滤不等于用户输入的id放入新数组
        const newArr = arr.filter(ele => id != ele.id)
        //写入新数组
        fs.writeFile('./data.json', JSON.stringify(newArr))
        return '删除数据成功'
    } catch (error) {
        return '删除数据失败' + error
    }
}


//修改
// updateData({
//     "author": "邹华龙",
//     "bookname": "法外狂徒",
//     "publisher": "华龙人民出版社",
//     "id": 5
// }).then(res=>console.log(res))

async function updateData(obj) {
    try {
        //获取数据
        const arr = await getData()
        //根据id获取下标
        const index = arr.findIndex(ele => ele.id === obj.id)
        //修改下标为用户输入的值
        arr.splice(index, 1, obj)
        //写入文件
        fs.writeFile('./data.json', JSON.stringify(arr))
        return '修改数据成功'
    } catch (error) {
        return '修改数据失败' + error
    }
}